package com.dc.refactoring._3_重新组织数据._6_ChangeUnidirectionalAssociationToBidirectional.step2;

import com.google.common.collect.Sets;

import java.util.Set;

/**
 * Description: 客户类
 * @author: gdc
 * @date: 2020/11/17
 * @version 1.0
 */
public class Customer {
    // 【1】为客户类添加一个字段，由于 客户与订单是一对多的关系，因此这里是一个集合
    private Set<Order> orders = Sets.newHashSet();


    // 【3】添加一个辅助函数，便于 主类 访问，如果两个类在同一个包内，函数声明为包内可见，使其可见程度降到最低
    Set<Order> friendOrders() {
        return orders;
    }

    // 【5】如果希望 Customer 也能修改连接，就让它调用控制函数
    public void addOrder(Order arg) {
        arg.setCustomer(this);
    }
}
